package homework1;

import java.util.Scanner;

/**
 * 手机号验证码登录:手机号必须合法
 */
public class PhoneCodeLoginImpl implements LoginStrategy {

    @Override
    public void login() {
        Scanner sc = new Scanner(System.in);

        while (true) {
            System.out.println("请输入您的手机号:");
            String userPhone = sc.nextLine();
            //判断手机号是否正确
            if (phoneCode(userPhone) && (userPhone.length() > 0)) {
                while (true) {
                    System.out.println("请你输入验证码");
                    String userCode = sc.nextLine();
                    if (userCode.matches("[a-zA-Z0-9]")) {
                        System.out.println("验证码输入正确,欢迎进入系统");
                        //进入相应的业务
                        break;
                    } else {
                        System.out.println("验证码不正确,请重新输入");
                    }
                }
                break;
            } else {
                System.out.println("你的手机号不对,请重新输入");
            }
        }
    }

    private boolean phoneCode(String userPhone) {
        /**
         * ^表示字符串的开始，
         * $表示字符串的结束。
         * 括号中的[34578]表示只能是数字3、4、5、7、8中的一个，
         * \\d表示数字任意一个，
         * {9}表示该数字重复出现9次
         */
        boolean flag = userPhone.matches("^1([34578])\\d{9}$");
        return flag;
    }

}
